package com.xx.springboot.DataStructure.LeetCode.String;

import java.util.regex.Pattern;

/**
 给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。

 说明：本题中，我们将空字符串定义为有效的回文串。

 示例 1:

 输入: "A man, a plan, a canal: Panama"
 输出: true
 示例 2:

 输入: "race a car"
 输出: false
 */
public class isPalindrome {
    public boolean isPalindrome(String s) {
        if(s.isEmpty())
            return true;

        int front = 0, tail = s.length() - 1;
        while (front < tail) {
            if(!Character.isLetterOrDigit(s.charAt(front)))
                front++;
            else if(!Character.isLetterOrDigit(s.charAt(tail)))
                tail--;
            else{
                if(Character.toLowerCase(s.charAt(front)) != Character.toLowerCase(s.charAt(tail)))
                    return false;

                front++;
                tail--;
            }

        }
        return true;
    }
}
